BitriseにGitHub OrganizationのRepositoryを連携してみた
こんにちは、CX事業本部の若槻です。
弊部署で対応している一部のプロジェクトでは、モバイルアプリのCI/CDツールとしてBitriseを利用しています。Bitriseは、iOS、Android、Xamarin、React NativeなどのモバイルアプリケーションのCI/CDに特化したWebサービスです。
今回は、このBitriseにチームで利用しているGitHub OrganizationのRepositoryを連携してチームでCI/CDを利用できるようにするまでの操作を確認してみました。
やってみる
早速BitriseでGitHub OrganizationのRepositoryを連携をしてみます。なお、前提として以下の対応は実施済みです。
- 操作に使用するアカウントに対して以下実施済みです。
- GitHub連携によるBitriseへのサインアップ
- 連携するGitHub Organizationへの所属
- 今回連携するGitHub Organization上のコードとして、Bitriseが公開している以下のサンプルコード集のうちの一つをCloneをRepositoryとして作成済みです。
Bitrise Organizationを作成する
まず、BitriseにOrganizationを作成します。プランはOrg Standardの14-day Trialを利用します。
Bitriseの[Pricing]ページを開き、[Start 14-day Org trial]をクリックします。
BitriseにサインインしていなければGitHubのユーザーアカウントでサインインします。Bitrise上にOrganizationが未作成であれば、[Create new Organization]ダイアログが開きます。
ダイアログで[Name of Organization]に任意のBitrise組織名(今回はcx-verify
)、[Billing email]に支払い情報送付先のメールアドレスを指定し、[Create]をクリックします。
支払い情報の入力を求められますが、Trialなので必須ではありません。今回は右上の[skip]を入力します。これでOrg Standard TrialのBitrise Organizationの作成は完了です。
Bitrise OrganizationへAppを追加する
次に、Bitrise OrganizationへGitHub Organization上のRepositoryをAppとして追加します。
Bitriseの[Dashboard]ページを開き、右上のOwner選択メニューで先ほど作成したBitrise Organizationを選択します。Appはまだ一つも追加されていない状態です。[Add New App]をクリックし、[Add New App on web UI]を選択します。
[CHOOSE ACCOUNT]で先ほど作成したBitrise Organization、[SET PRIVACY OF THE APP]でPrivate
が選択されていることを確認し、[Next]をクリックします。
画面左の[ORGANIZATIONS' REPOS]欄よりGitHub Organizationアカウントを選択し、画面右よりAppを作成したいRepository(今回はsample-apps-android-sdk22
)を選択します。なお、[ORGANIZATIONS' REPOS]欄には操作アカウントが所属しているGitHub Organizationがすべて表示され、Repository一覧には操作アカウントがGitHub側でRead
以上の権限を持っているRepositoryのみ表示される動作となりました。
[Setup repository access]では、自動でRepositoryにSSH Keyを設定するため、[No, auto-add SSH key]をクリックします。
すると警告が出てSSH Keyの自動追加ができませんでした。
GitHub Organization側で操作アカウントのアクセス権を確認してみると、sample-apps-android-sdk22
Repositoryに対してはWrite
権限しか持っていませんでした。
操作アカウントが所属するTeamのRepositoryに対するアクセス権をAdmin
に変更します。
Bitrise側に戻り、設定を再チャレンジしてみます。[No, auto-add SSH key]をクリックします。
SSH Keyが設定できました。Appで使用するBranch名を入力し(今回はmaster
を指定)、[Next]をクリックします。
Repositoryに対するValidationが開始されます。
Validationが成功したら、[Specify Module]を指定(今回は既定のapp
)して[Next]をクリックします。
[Specify Valiant]を指定(今回は既定の未指定)して[Next]をクリックします。
[Confirm]をクリックします。
[App icon]ではCustomアイコンを指定できます。今回は[Skip for Now]をクリックします。
[Webhook setup]で[Register a Webhook for me!]をクリックします。この設定によりGitHub上のReposigory側で行われたPushなどの操作によりBitrise側でAppのBuildをトリガーさせることができるようになります。(この時、特にGitHub側での承認などは不要です。)
RepositoryへのWebhookの登録が完了すると以下のような画面となり、Appの最初のBuildがキックされます。
App作成画面を一番上までスクロールして、右上の[Finish]をクリックします。
ダッシュボードページに戻ります。[All owners]が選択されているので個人およびすべてのOrganizationが表示されています。
cx-verify
を選択すると、cx-verify
に追加済みのAppの一覧やBuild履歴のみをフィルター表示できます。
これでGitHub Organization上のRepositoryをBitrise OrganizationにAppとして追加できました。
Bitrise OrganizationおよびGroupへMemberを追加する
次に、MemberアカウントをBitrise OrganizationおよびGroupへ追加します。この操作によりBitriseのMemberアカウントを同じBitrise Organizationの課金体系上で管理できるようになります。
ダッシュボードページで右上のアイコンをクリックして[Account settings]をクリックします。
ページ左下で[ORGANIZATIONS]欄よりメンバーを追加したいBitrise Organizationを選択します。
[Groups]タブを選択して[Create new Group]欄でGroup名(今回はhoge-prg-group
)を指定して、[Create]をクリックします。
Groupに追加したい同じGitHub Organizationに属するアカウントのGitHubユーザーネームを指定して[Done]をクリックします。
指定されたアカウントがどのBitrise Organizationにも未参加の場合は、そのアカウント宛にOrganization invitation - <Organization名>
というタイトルの招待メールが届きます。招待されたアカウントはメールに記載されたリンクを参考に、cx-verify
Organizationとhoge-prg-group
Groupに参加します。
※ここから、招待した側のユーザーを「Ownerアカウント」、された側のユーザーを「Memberアカウント」と呼ぶことにします。
Ownerアカウントでcx-verify
Organizationのページにて[Group]タブを開くと、招待されたMemberアカウントがhoge-prg-group
に参加できているのが確認できます。
AppにGroupをアサインする
次に、AppをGroupにアサインします。この操作によりGroupに所属するMemberアカウントは同じAppをBitrise上で共有して利用できるようになります。
MemberアカウントでBitriseにサインインしてダッシュボードを開いてみると、先ほどOwnerアカウントがcx-verify
Organizationに追加したAppが表示されていません。(キャプチャ内に表示されているのはMemberアカウントが自分でcx-verify
に追加したAppです。)
[Assigning groups to apps - bitrise:DOCS]を確認してみると、Appを利用させたいアカウントのGroupをAppへ明示的にアサインする必要があり、アサインの仕方には以下の2つの方法があるとのことです。今回は後者の方法を取ってみます。
- Assigning a group from the Groups menu
- Assigning a group from the
Team
tab.
Ownerアカウントでダッシュボードページを開き、のApp一覧より追加したいAppを選択します。
[Team]タブで[Add member or group]をクリックします。
追加したいGroupで[+]をクリックします。
付与するRoleの種類を聞かれるので選択します。(今回はDEVELOPERS
としました)
※AppにGroupやMemberをアサインする際のRoleの種類の詳細は以下ドキュメントで確認できます。
AppのDEVELOPERS
Roleを持つGroupとしてhgoe-prg-group
が追加されました。
再度MemberアカウントでBitriseのダッシュボードを開いてみると、DEVELOPER
Roleが付与されたAppやそのBuild履歴が表示されるようになりました。
MemberアカウントでBitrise画面よりAppのBuidを実行することもできました。
おわりに
BitriseでGitHub OrganizationのRepositoryを連携してみました。
わたしはサーバーサイド寄りのエンジニアであるためアプリ開発は経験がなく、Bitriseにもまったくと言って良いほど縁が無かったのですが、今回四苦八苦しながらガッツリ触ることによりBitriseとの距離感をぐっと縮めることができました。
参考
- Getting started - bitrise:DOCS
- Teams and organizations - bitrise:DOCS
- bitrise-io/bitrise.samples - GitHub
以上